package com.TTBook.utils.pages;

import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;

/**
 * 
 * @author Frank
 *
 * <b>Class Description:</b><br>
 * 分页包装类，用来包装查询返回的结果集，结果集中的元素为Object。
 * 页码号即pageIndex从0开始。
 */
public interface PaginatedList<T> extends List<T>,Serializable {
	
	public static final List<Object> EMPTY_LIST = new ArrayList<Object>(0);
	
	
	/**
	 * 默认页面尺寸
	 */
	public static final int DEFAULT_PAGE_SIZE = 20;
	
	/**
	 * 返回页码
	 * @return
	 */
	public int getPageIndex();
	
	/**
	 * 返回每页应返回的结果集数目
	 * @return
	 */
	public int getPageSize();
	
	/**
	 * 返回总页数
	 * @return
	 */
	public int getPageCount();
	
	/**
	 * 返回集合总数
	 * @return
	 */
	public int getTotalCount();
	
	/**
	 * 返回当前页码的结果集
	 * @return
	 */
	public List<? extends Object> getPageList();
	
}
